﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;

namespace Vision.Utilities.DataAnalytics
{
    [XmlRoot("sensor")]
    public class PrtgSensorData
    {
        [XmlElement("objid")]
        public string ID { get; set; }

        [XmlElement("name")]
        public string Name { get; set; }

        [XmlElement("url")]
        public string URL { get; set; }

        [XmlElement("group")]
        public string Group { get; set; }

        [XmlElement("device")]
        public string Device { get; set; }

        [XmlElement("tags")]
        public string Tags { get; set; }

        [XmlElement("priority")]
        public string Priority { get; set; }

        [XmlElement("fixed")]
        public string Fixed { get; set; }

        [XmlElement("type")]
        public string Type { get; set; }

        [XmlElement("sensorkind")]
        public string SensorKind { get; set; }

        [XmlElement("interval")]
        public string Interval { get; set; }

        [XmlElement("status_raw")]
        public string StatusRaw { get; set; }

        [XmlElement("status")]
        public string Status { get; set; }

        [XmlElement("datamode")]
        public string DataMode { get; set; }

        [XmlElement("lastvalue")]
        public string LastValue { get; set; }

        [XmlElement("lastvalue_raw")]
        public string LastValueRaw { get; set; }

        [XmlElement("statusmessage")]
        public string StatusMessage { get; set; }

        [XmlElement("statussince_raw_utc")]
        public string StatusSinceRawUtc { get; set; }

        [XmlElement("lasttime_raw_utc")]
        public string LastTimeRawUtc { get; set; }

        [XmlElement("lasterror_raw_utc")]
        public string LastErrorRawUtc { get; set; }

        [XmlElement("lastok_raw_utc")]
        public string LastOkRawUtc { get; set; }


        [XmlElement("lastup_raw_utc")]
        public string LastUpRawUtc { get; set; }

        [XmlElement("lastdown_raw_utc")]
        public string LastDownRawUtc { get; set; }

        [XmlElement("cumulateddowntime_raw")]
        public string CumulatedDownTimeRaw { get; set; }

        [XmlElement("cumulateduptime_raw")]
        public string CumulatedUpTimeRaw { get; set; }

        [XmlElement("cumulatedsince_raw")]
        public string CumulatedSinceRaw { get; set; }

        [XmlElement("active")]
        public string Active { get; set; }

        [XmlElement("active_raw")]
        public string ActiveRaw { get; set; }

        public override string ToString()
        {
            return Name;
        }
    }
}
